In most computer systems there is a need to provide for backing up of data. The most common reason, of course, is for security purposes in order to deal with power outages, software malfunctions, or other situations which would otherwise result in irretrievable corruption or loss of valuable data. The need is particularly acute, for example, in transaction based systems such as those typically found in banking, insurance, airline operations, or the like. In such systems, a further typical requirement is that they be in continuous operation whereby transactions may not easily be halted in order to provide for such data backup. Provisions must therefore be made for dynamically backing up the data "on the fly" e.g. during the routine transactional operations being performed by the system, whether they be booking of airline ticket reservations, posting banking transactions or the like.
It may be readily appreciated that several serious constraints are imposed on the ability to provide for data redundancy in computer systems, such as the aforementioned inability to cease operations even for relative short periods to provide for backup. Yet an additional requirement for backups is a necessity to maintain the particular file system's data arrangement after backup. Thus, in providing for such security another serious constraint which has been imposed is that the existing file system must remain intact, necessitating at most only minimal changes to the file system layout itself.
Yet another problem presented by modern computer systems, particularly those of the transactional variety, relates to the paramount requirement that the database and file system always remain in a consistent state at any time, thereby compounding the problems in providing effective data backup. The classical illustration of the problem is that airline transactions must always maintain their atomicity, with both sides of the ledger committing at the same time. For example, when a reservation is made on an airline, the reservation system ever cannot be an inconsistent state wherein the customer has been guaranteed a ticket yet the database has not been debited by one seat to reflect the resulting unavailability of a seat for another passenger.
In like manner, in the banking industry, the situation must be precluded wherein the customer is granted use of a sum of money (e.g. a credit) without simultaneously a debit being reflected in his or her account balance. An associated problem in provision for backup systems is that the systems typically include transactional logs, for such security and database consistency, which must at all times remain in sync, even during any backup procedures such that the aforementioned consistent state of the database is always maintained and presented to the user.
Several attempts have been made in the prior art to effect a commercially acceptable system for data backup which nevertheless suffer from serious drawbacks. One approach has been to provide for a form of periodic backup of prior systems which unfortunately involves simply stopping the processing while performing backup. For reasons detailed above this solution obviously was easily found to be completely unworkable, inasmuch as modern businesses simply cannot afford downtime (even on off hours) to perform system maintenance and related backup. Other systems have attempted to circumvent this problem by providing backup "on the fly". However, they have also necessitated the unfortunate requirement that the prior system's file system per se be altered necessitating increased cost and risk which has also been found unacceptable.
Still a further attempt to solve the problem has been to effect a "mirroring" technique now well known in the art which involves the creation of a redundant copy of data which is in fact available essentially at all times. However, several notorious drawbacks have been associated with this approach. First, it requires a redundant copy of all data. Given the immense cost associated with storage devices such as DASD and the like, this drawback alone renders a mirroring approach in many if not most applications as very undesirable.
In summary then, with respect to prior art, one technique was simply to cease processing while backing up which had its obvious drawbacks. The other technique, in more detail, involved saving a partition map, breaking off a mirrored copy of the logical volume to create a new logical volume and backing up. When writing to the logical volume, the write operation also would then include a write to the mirrored copy of the logical volume. This latter technique accordingly involved the drawback of performance penalties in the additional write time and cost penalties in paying for twice the DASD].
Yet another reason for disfavor of the mirroring approach in addition to extra DASD is that, in providing for such redundant copying of all data, severe performance penalties are incurred as noted which are found to be completely unacceptable in many commercial environments. The all-too-familiar delays in an airline ticket line awaiting completion of a transaction by a host computer underscores the inadequacy of any proposed solution to the problem which adversely impacts the computer system's performance.
For all the foregoing reasons, a simple and effective system was highly desired in the industry which could provide for data backup in computer systems. It is thus an object of the invention to provide for such a system.
Yet an additional object of the invention was to provide for data backup systems operating under the covers to permit a perceived normal operation of database transactions while at the same time providing for such backup.
Yet a further object of the invention was to provide an effective system which could freeze a copy of data readable at any time while presenting a normal view of such data during system backup.
Still a further object of the invention was to facilitate a mechanism whereby an "uncloning" of the backup procedure could be effected in a seamless manner without disruption of ongoing file management.
Yet a further object of the invention was to provide for a practical data backup system which avoided the necessity for mirroring and associated performance problems and increased memory costs.
Another object of the invention was to provide for a data backup system which did not entail alteration of the underlying file system data arrangement.